package org.example.web;

import io.jsonwebtoken.Claims;
import io.jsonwebtoken.Jwts;
import io.jsonwebtoken.SignatureAlgorithm;
import org.springframework.security.core.Authentication;

import java.util.Date;
import java.util.Map;
import java.util.UUID;

public class JwtUtils {
    private final static String secret="tarqwiojhasjskjsadne";

    public static String createToken(Authentication authentication){
        return Jwts.builder()
                .setSubject(authentication.getName())   //主题，可以为用户名或者用户id
                .setIssuedAt(new Date())    //颁发时间
                .setIssuer("limou") //颁发者
                .setExpiration(new Date(System.currentTimeMillis() + 30 * 60 * 1000))   //过期时间
                .signWith(SignatureAlgorithm.HS256, secret)  //加密方式
                .compact();
    }

    public static Claims parseToken(String token){
        Claims claims = Jwts.parser()
                .setSigningKey(secret)  //解密
                .parseClaimsJws(token)  //被解密的token
                .getBody(); //拿出
        return claims;
    }
}
